Skip to content

Develop v1.4.7 as Next Stable Release#6

Closed
dave14305 wants to merge 9 commits intomasterfrom
develop
Closed

Develop v1.4.7 as Next Stable Release#6
dave14305 wants to merge 9 commits intomasterfrom
develop

Conversation

@dave14305
Copy link

@dave14305 dave14305 commented Jun 5, 2025

Develop v1.4.7 as Next Stable Release

Includes PR: #7 Resolved issues reported here: #1
Also restores the develop branch ability: 3021a0a

@dave14305 dave14305 requested review from a team as code owners June 5, 2025 20:41
@ExtremeFiretop ExtremeFiretop self-assigned this Jun 6, 2025
@ExtremeFiretop
Copy link
Member

Testing this now

@ExtremeFiretop
Copy link
Member

Appears to work correctly:

image
image

ExtremeFiretop
ExtremeFiretop previously approved these changes Jun 6, 2025
Allow Script to Remain In Update Process
ExtremeFiretop
ExtremeFiretop previously approved these changes Jun 7, 2025
@ExtremeFiretop
Copy link
Member

Test Branch Changes Merged into Dev cleanly. This is ready for next release.

@ExtremeFiretop ExtremeFiretop changed the title Restore Develop branch functionality Develop v1.4.7 as Next Stable Release Jun 7, 2025
@ExtremeFiretop
Copy link
Member

@dave14305 feel free to merge this at your connivence; you may want to push an update on SNB forums; or not. Depending how you feel.

@dave14305
Copy link
Author

I don’t think these changes warrant a new release yet.

@ExtremeFiretop
Copy link
Member

I don’t think these changes warrant a new release yet.

How about a way to warn users installing on 3006 with BE class routers that Adaptive QoS is currently unfunctional?

Do you have some key indicators to identify if adaptive QoS is "broken" or not?
We could use those and make the warning adaptive in that case! Or just put in a temporary warning based on the router firmware and class.

@dave14305
Copy link
Author

Do you have some key indicators to identify if adaptive QoS is "broken" or not?

Listing and counting the tc filter show dev br0 output is the most obvious method to me.

@dave14305
Copy link
Author

dave14305 commented Jun 7, 2025

Listing and counting the tc filter show dev br0 output is the most obvious method to me.

This is already in the script. It’s one of the tests I use to determine if Adaptive QoS is done loading all its rules before FlexQoS tries to modify them.

check_qos_tc() {

@ExtremeFiretop
Copy link
Member

ExtremeFiretop commented Jun 7, 2025

Listing and counting the tc filter show dev br0 output is the most obvious method to me.

This is already in the script. It’s one of the tests I use to determine if Adaptive QoS is done loading all its rules before FlexQoS tries to modify them.

check_qos_tc() {

I'm thinking we piggy back on that then, and then maybe make the warning check dependent on 3006 firmware being installed. Or I guess technically we could make it a universal warning no matter the firmware installed, this could be an issue in the future maybe even if it gets fixed eventually?

@dave14305
Copy link
Author

Or I guess technically we could make it a universal warning no matter the firmware installed, this could be an issue in the future maybe even if it gets fixed eventually

I expect that most BE owners that try to run it are getting the messages from this check after the timeout.

FlexQoS/flexqos.sh

Lines 1698 to 1712 in d6ae4c2

while check_qos_tc;
do
[ "${sleepdelay}" = "0" ] && logmsg "TC Modification Delayed Start"
sleep 10s
if [ "${sleepdelay}" -ge "180" ]; then
logmsg "QoS state: Classes=${dlclasscnt} | Filters=${dlfiltercnt} | qdiscs=${dlqdisccnt}"
if [ ! -f "/tmp/${SCRIPTNAME}_restartonce" ]; then
touch "/tmp/${SCRIPTNAME}_restartonce"
logmsg "TC Modification Delay reached maximum 180 seconds. Restarting QoS."
service "restart_qos;restart_firewall"
else
logmsg "TC Modification Delay reached maximum 180 seconds again. Canceling startup!"
rm "/tmp/${SCRIPTNAME}_restartonce" 2>/dev/null
fi
return 1

@ExtremeFiretop
Copy link
Member

Or I guess technically we could make it a universal warning no matter the firmware installed, this could be an issue in the future maybe even if it gets fixed eventually

I expect that most BE owners that try to run it are getting the messages from this check after the timeout.

FlexQoS/flexqos.sh

Lines 1698 to 1712 in d6ae4c2

while check_qos_tc;
do
[ "${sleepdelay}" = "0" ] && logmsg "TC Modification Delayed Start"
sleep 10s
if [ "${sleepdelay}" -ge "180" ]; then
logmsg "QoS state: Classes=${dlclasscnt} | Filters=${dlfiltercnt} | qdiscs=${dlqdisccnt}"
if [ ! -f "/tmp/${SCRIPTNAME}_restartonce" ]; then
touch "/tmp/${SCRIPTNAME}_restartonce"
logmsg "TC Modification Delay reached maximum 180 seconds. Restarting QoS."
service "restart_qos;restart_firewall"
else
logmsg "TC Modification Delay reached maximum 180 seconds again. Canceling startup!"
rm "/tmp/${SCRIPTNAME}_restartonce" 2>/dev/null
fi
return 1

I would just put a big splash warning on the main menu for the users to let them know myself. The logs is a good place to validate though I can see if I get those messages

@ExtremeFiretop
Copy link
Member

I expect that most BE owners that try to run it are getting the messages from this check after the timeout.

FlexQoS/flexqos.sh

Lines 1698 to 1712 in d6ae4c2

while check_qos_tc;
do
[ "${sleepdelay}" = "0" ] && logmsg "TC Modification Delayed Start"
sleep 10s
if [ "${sleepdelay}" -ge "180" ]; then
logmsg "QoS state: Classes=${dlclasscnt} | Filters=${dlfiltercnt} | qdiscs=${dlqdisccnt}"
if [ ! -f "/tmp/${SCRIPTNAME}_restartonce" ]; then
touch "/tmp/${SCRIPTNAME}_restartonce"
logmsg "TC Modification Delay reached maximum 180 seconds. Restarting QoS."
service "restart_qos;restart_firewall"
else
logmsg "TC Modification Delay reached maximum 180 seconds again. Canceling startup!"
rm "/tmp/${SCRIPTNAME}_restartonce" 2>/dev/null
fi
return 1

The logs is a good place to validate though I can see if I get those messages

@dave14305

Confirmed as seen below:

Jun  7 14:47:01 FlexQoS: TC Modification Delay reached maximum 180 seconds. Restarting QoS.
Jun  7 14:47:01 rc_service: service 6760:notify_rc restart_qos;restart_firewall
Jun  7 14:47:01 custom_script: Running /jffs/scripts/service-event (args: restart qos)
Jun  7 14:47:02 BWDPI: fun bitmap = 3
Jun  7 14:47:02 custom_script: Running /jffs/scripts/service-event-end (args: restart qos)
Jun  7 14:47:02 custom_script: Running /jffs/scripts/service-event (args: restart firewall)
Jun  7 14:47:04 rc_service: waitting "restart_qos;restart_firewall"(last_rc:restart_qos;restart_firewall) via  ...
Jun  7 14:47:05 custom_script: Running /jffs/scripts/firewall-start (args: ppp0)
Jun  7 14:47:05 custom_script: Running /jffs/scripts/service-event-end (args: restart firewall)
Jun  7 14:47:05 FlexQoS: /jffs/addons/flexqos/flexqos.sh (pid=8184) called in unattended mode with 1 args: -start
Jun  7 14:47:05 FlexQoS: Applying iptables static rules
Jun  7 14:47:05 FlexQoS: Applying iptables custom rules
Jun  7 14:47:06 FlexQoS: Flushing conntrack table
Jun  7 14:47:06 FlexQoS: TC Modification Delayed Start

Add Warning Messages for Adaptive QoS
If Adaptive QoS is not functional, display a warning message to the user in shell and the WebUI
Ignore annoying Shellcheck
Ignore Shellcheck x2
@ExtremeFiretop
Copy link
Member

@dave14305

Quick daft/sample here: #8

Add Warning Messages for Adaptive QoS
@dave14305
Copy link
Author

Closing this since I’ve probably made a mess of this one by not understanding the intended workflow.

@dave14305 dave14305 closed this Jun 8, 2025
@ExtremeFiretop
Copy link
Member

ExtremeFiretop commented Jun 8, 2025

Closing this since I’ve probably made a mess of this one by not understanding the intended workflow.

It's not that bad truly. As soon as I merged mine into dev it was included in this PR.
We can open a new one against master though when enough changes make it worth while.

Thanks for your help. Hope all works well with OPNSense

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments